package com.jt.controller;

import com.jt.pojo.User;
import com.jt.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.ArrayList;
import java.util.List;

//@RestController  //1.返回的数据时json数据  2.表示ajax请求的结束
                 // 3.返回值的是字符串本身  4.不会执行springMVC中的组件:视图解析器

@Controller    //接受用户的请求,返回指定的页面,会执行视图解析器,进行路径的拼接 (前后缀)
public class UserController {

    @Autowired
    private UserService userService;
    /**
     * 拦截用户的请求:http://localhost:8090/findAll
     * 参数:暂时没有
     * 返回值:特定页面的名称
     * 前缀:     /WEB-INF/
     * 页面名称: userList
     * 后缀:     .jsp
     */
    //页面同步请求的方法
    @RequestMapping("/findAll")
    public String findAll(Model model){
        List<Integer> ids = new ArrayList<>();
        ids.add(1);
        ids.add(2);
        ids.add(3);
        ids.add(4);
        List<User> userList = userService.findAll();
        //目的:需要通过request对象将数据带到页面中进行展现
        model.addAttribute("userList",userList);
        model.addAttribute("msg", "你好SpringBoot");
        model.addAttribute("ids", ids);

        //springMVC中采用视图解析器的形式添加前后缀
        return "userList"; //返回页面的逻辑名称
    }
    /**
     * 异步请求:多次请求多次响应
     * 实现页面的跳转
     * url网址http://localhost:8090/toAjax
     * 跳转页面名称:ajax.jsp
     */

    @RequestMapping("/toAjax")
    public String toAjax(){
        return "ajax";
    }
    /**
     * 实现ajax业务调用
     * url地址:/ajaxUser
     * 参数:  id/name
     * 返回值:  List<User>
     */
    @RequestMapping("/ajaxUser")
    @ResponseBody
    public List<User> ajaxUser(Integer id,String name){
        System.out.println("id参数:"+id);
        System.out.println("name参数:"+name);
        return userService.findAll();
    }
}
